mainmenu = {}

mainmenu.listCat;
mainmenu.obj;
mainmenu.list = function(){
    main.init();
    fly.ajax({
        service:'/mainMenu/list',
        success: function(result){
            if(result.status){
                mainmenu.listCat = result.data;
                $('#content').html(fly.template('http://naima.vn/mainmenu/list.html', {
                    data:result.data
                }));                                
                mainmenu.printMenuList(0);
            }
            else{
                popup.msg(result.message);
            }
        }
    });
}

mainmenu.create = function(){
    popup.open('popup-mainmenu-form', 'Thêm menu mới', fly.template('http://naima.vn/mainmenu/form.html', {
        data:null
    }), [

    {
        title:'Thêm mới', 
        fn:function(){          
            fly.submitWithFile({
                id:'mainmenu-form',
                service: '/mainMenu/create',
                success: function(result){                    
                    popup.msg(result.message);
                    popup.close('popup-mainmenu-form');
                    $('table tr').first().after('');
                    fly.ajax({
                        service:'/mainMenu/list',
                        success: function(rs){
                            if(rs.status){
                                mainmenu.listCat = rs.data;
                                $('#content').html(fly.template('http://naima.vn/mainmenu/list.html', {
                                    data:rs.data
                                }));                                
                                mainmenu.printMenuList(0);
                            }
                            else{
                                popup.msg(rs.message);
                            }
                        }
                    });
                }
            });
        }
    },
    {
        title:'Hủy bỏ',
        fn:function(){
            popup.close('popup-mainmenu-form');
        }
    }
    ]);
    fly.ajax({
        service:'/mainMenu/list',
        success: function(result){
            mainmenu.listCat = result.data;
            mainmenu.printCat(0);
        }
    });
    mainmenu.checkType() ;
    $('#targetType').change(function(){
        mainmenu.checkType() ;
    });
}


mainmenu.edit = function(id){
    fly.ajax({
        service: '/mainMenu/get',
        loading: false,
        data: {
            id: id
        },
        success: function(data){
            if(!data.status)
                popup.msg(data.message);
            else{
                mainmenu.obj = data.data;
                popup.open('popup-editmenu-form', 'Chỉnh sửa menu', fly.template('http://naima.vn/mainmenu/form.html', {
                    data:data.data
                }), [

                {
                    title:'Chỉnh sửa', 
                    fn:function(){            
                        fly.submitWithFile({
                            id:'mainmenu-form',
                            service: '/mainMenu/edit/',
                            success: function(result){
                                if(result.status){
                                    popup.msg(result.message);
                                    popup.close('popup-editmenu-form');
                                    $('table tr').first().after('');
                                    fly.ajax({
                                        service:'/mainMenu/list',
                                        success: function(rs){
                                            if(rs.status){
                                                mainmenu.listCat = rs.data;
                                                $('#content').html(fly.template('http://naima.vn/mainmenu/list.html', {
                                                    data:rs.data
                                                }));                                
                                                mainmenu.printMenuList(0);
                                            }
                                            else{
                                                popup.msg(rs.message);
                                            }
                                        }
                                    });
                                }
                                else
                                    popup.msg(result.message);
                            }
                        });
                    }
                },
                {
                    title:'Hủy bỏ',
                    fn:function(){
                        popup.close('popup-editmenu-form');
                    }
                }
                ]);
                fly.ajax({
                    service:'/mainMenu/list',
                    loading: false,
                    async: false,
                    success: function(res){
                        mainmenu.listCat = res.data;
                        mainmenu.printCat(0);
                        $('#parentId').val(data.data.parentId); 
                    }
                });     
                $('#targetType').val(data.data.targetType);
                mainmenu.checkType(data.data.targetId) ;
                $('#targetType').change(function(){
                    mainmenu.checkType(data.data.targetId) ;
                });
            }
        }
    });    
}

mainmenu.del = function(id){
    popup.confirm("Bạn có chắc chắn muốn xóa menu này?", function(){
        fly.ajax({
            service: '/mainMenu/delete/',
            data: {
                id: id
            },
            success: function(result){
                popup.msg(result.message);
                $('.table tr[for='+id+']').remove();
                $.each(result.data, function(){
                    var tmp = this;
                    $('.table tr[for='+tmp.id+']').remove();
                });
            }
        });
    });
}
mainmenu.level = 0;
mainmenu.printCat = function(parentId){
    $.each(mainmenu.listCat, function(){
        var cat = this;
        if(cat.parentId == parentId){
            mainmenu.level ++;
            var tmp = "";
            var i = mainmenu.level;
            while(i){
                tmp += "- - ";
                i--;
            }
            $('#parentId').append('<option value="'+cat.id+'">'+tmp+cat.name+'</option>');
            mainmenu.printCat(cat.id);
            mainmenu.level --;
        }
    });
}

mainmenu.printMenuList = function(parentId){
    $.each(mainmenu.listCat, function(){
        var cat = this;
        if(cat.parentId == parentId){
            mainmenu.level ++;
            var tmp = "";
            var i = mainmenu.level;
            while(i){
                tmp += "- - ";
                i--;
            }
            if(cat.targetType == 1)
                cat.targetType = "Danh mục sản phẩm";
            else if(cat.targetType == 2)
                cat.targetType = "Sản phẩm";
            else if(cat.targetType == 3)
                cat.targetType = "Liên kết ngoài";
            else
                cat.targetType = "Không có liên kết";
            $('table').append('<tr level="'+mainmenu.level+'" align="center" for="'+cat.id+'">\
                <td><input type="checkbox" for="'+cat.id+'"/></td>\
                <td><p>'+cat.id+'</p></td>\
                <td style="padding-left:50px;text-align:left"><p>'+tmp+cat.name+'</p></td>\
                <td><img style="max-height:70px;" src="'+fly.uploadUrl+cat.banner+'"/></td>\
                <td><p>'+cat.targetType+'</p></td>\
                <td><p>'+cat.targetId+'</p></td>\
                <td><p>'+cat.targetUrl+'</p></td>\
                <td><p>'+cat.order+'</p></td>\
                <td style="text-align:center;"><a onclick="mainmenu.changeStatus('+cat.id+')"><img class="published-'+cat.id+'" src="'+fly.assetsUrl+'/images/icon-enable.png"></a></td>\
                <td><p><a onclick="mainmenu.edit('+cat.id+')">Sửa</a></p></td>\
                <td><p><a onclick="mainmenu.del('+cat.id+')">Xóa</a></p></td>\
            </tr>');
            if(cat.published == 0){
                $('.published-'+cat.id).attr('src',fly.assetsUrl +'/images/icon-disable.png');
            }
            mainmenu.printMenuList(cat.id);
            mainmenu.level --;
        }
    })
}
mainmenu.checkAll = function(){
    if($('#list-checkall').is(":checked"))
        $('input[type="checkbox"]').attr('checked','checked');    
    else
        $('input[type="checkbox"]').removeAttr('checked');
}
mainmenu.delAll = function(){
    var data = Array();
    var i = 0;
    $('input[type=checkbox][for]').each(function(){
        if($(this).is(':checked')){
            data[i] = parseInt($(this).attr('for'));
            i++;
        }
    });
    if(data.length <= 0){
        popup.msg("Bạn chưa chọn menu nào.");
        return;
    }
    popup.confirm("Bạn có chắc chắn muốn xóa những menu này?", function(){
        fly.ajax({
            service: '/mainMenu/deleteall',
            data:{
                ids:JSON.stringify(data)
            },
            success: function(result){
                popup.msg(result.message);
                for(var i=0; i<result.data.length; i++){
                    $('.table tr[for='+result.data[i]+']').remove();
                }
            }
        });
    });
}
mainmenu.checkType = function(targetId){
    if($('#targetType').val() == 1 || $('#targetType').val() == 2){
        $('.targetUrl').hide();
        $('.targetId').show();
        $('.targetId').show().html('<label>Id liên kết:</label><select id="targetId" name="MainMenuForm[targetId]" style="width:308px;margin-left:5px" value=""></select>');
        mainmenu.printProductCat(0);
        $('#targetId').val(targetId);
    }
    else{
//        if($('#targetType').val() == 2){
//            $('.targetId').hide();
//            $('.targetUrl').show();
//            $('.targetId').show().html('<label>Id liên kết:</label>\
//                        <div style="margin-left:155px">\
//                        <label style="width:100px">Danh mục:</label>\
//                        <select id="targetId" name="MainMenuForm[targetId]" style="width:202px;margin-bottom:5px" value=""></select>\
//                        <label style="width:100px">Sản phẩm:</label>\
//                        <input name="productName" style="width:195px" value="Nhập tên để tìm kiếm"/>\
//                        <li><div class="auto-complete">\
//                        <div><li/>\
//                        </div>');
//            mainmenu.printProductCat(0);
//            $('input[name=productName]').keyup(function() {
//                mainmenu.delay(function(){
//                    fly.ajax({
//                        service: '/product/search',
//                        data: {
//                            title: $('input[name=newsName]').val(), 
//                            categoryId : $('#targetId').val(),
//                            pageIndex: 0,
//                            pageSize: 10
//                        },
//                        success: function(rs){
//                            if(rs.status){
//                                $('.auto-complete').show().html('');
//                                if(rs.data.length>1){
//                                    $.each(rs.data, function(){
//                                        $('.auto-complete').append('<label newsId="'+this.id+'" newsName="'+this.name+'">'+this.name+'</label>');
//                                    });
//                                    $('label[newsId]').click(function(){
//                                        $('.auto-complete').hide();
//                                        $('input[name=newsName]').val($(this).attr('newsName'));
//                                        $('.newsId').val($(this).attr('newsId'));
//                                    });
//                                }
//                            }
//                        }
//                    });
//                }, 500 );
//            });
//        }
//        else{
            if($('#targetType').val() == 3){            
                $('.targetId').hide();
                $('.targetUrl').show();
            }
            if($('#targetType').val() == 4){
                $('.targetId').hide();
                $('.targetUrl').hide();
            }
        //}
    }
}
mainmenu.listProductCat;
mainmenu.printProductCat = function(parentId){
    $.each(mainmenu.listProductCat, function(){
        var cat = this;
        if(cat.parentId == parentId){
            mainmenu.level ++;
            var tmp = "";
            var i = mainmenu.level;
            while(i){
                tmp += "- - ";
                i--;
            }
            $('#targetId').append('<option value="'+cat.id+'">'+tmp+cat.name+'</option>');
            mainmenu.printProductCat(cat.id);
            mainmenu.level --;
        }
    });
}

mainmenu.delay = (function(){
    var timer = 0;
    return function(callback, ms){
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
    };
})();

$(document).ready(function(){    
    fly.ajax({
        service: '/category/list',
        async: false,
        success: function(rs){
            mainmenu.listProductCat = rs.data;
        }
    });
});

mainmenu.changeStatus = function(id){
    fly.ajax({
        service: '/mainMenu/changeStatus/',
        data: {
            id: id
        },
        success: function(data){
            if(data.status){
                if(data.data == 1)
                    $('.published-'+id).attr('src',fly.assetsUrl + '/images/icon-enable.png');
                else
                    $('.published-'+id).attr('src',fly.assetsUrl + '/images/icon-disable.png');
            }
            else
                popup.msg(data.message);
        }
    });
}